package com.sqx.modules.health.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 预订服务
 * </p>
 *
 * @author gxy
 * @since 2022-04-08
 */
@Getter
@Setter
@TableName("ncg_serviceorder")
@ApiModel(value = "NcgServiceorder对象", description = "预订服务")
public class NcgServiceorder implements Serializable {

    private static final long serialVersionUID = 141564564L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("患者ID")
    private Long uid;

    @ApiModelProperty("服务ID")
    private Long sid;

    @ApiModelProperty("0未支付 1已接单 3完成 9撤销")
    private Integer status;

    @ApiModelProperty("评分")
    private BigDecimal score;

    @ApiModelProperty("评价")
    private String evaluate;

    @ApiModelProperty("是否评分")
    private Integer isscore;

    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")                    // 表示返回时间类型
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")      // 表示接收时间类型
    @ApiModelProperty("计划服务时间")
    private LocalDateTime planservicetime;

    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")                    // 表示返回时间类型
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")      // 表示接收时间类型
    @ApiModelProperty("提交时间")
    private LocalDateTime submittime;

    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")                    // 表示返回时间类型
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")    // 表示接收时间类型
    @ApiModelProperty("服务时间")
    private LocalDateTime servicetime;

    @ApiModelProperty("0未删除 1已删除")
    private Integer isdelete;

    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")                    // 表示返回时间类型
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")     // 表示接收时间类型
    @ApiModelProperty("创建时间")
    private LocalDateTime createtime;

    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")                    // 表示返回时间类型
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")      // 表示接收时间类型
    @ApiModelProperty("更新时间")
    private LocalDateTime updatetime;

//    @ApiModelProperty("地址id")
//    private Long addressid;

    @ApiModelProperty("订单备注")
    private String remark;

    @ApiModelProperty("订单处理人(接单人)")
    private Long accepter;

    @ApiModelProperty("订单所属医院")
    private Long hid;

    @ApiModelProperty("就医证明")
    private String prove;

    @ApiModelProperty("就医证明图片")
    @TableField(typeHandler = FastjsonTypeHandler.class, exist = false)
    private List<String> proveimgList;

    //    @TableField(exist = false)
    @ApiModelProperty("就医证明图片")
    private String proveimg;

    @ApiModelProperty("下单地址")
    private String address;

    @ApiModelProperty("接收服务的患者姓名")
    private String receiptor;
    @ApiModelProperty("接收服务的患者电话")
    private String receiptorPhone;

    @ApiModelProperty("下单订单金额")
    private BigDecimal orderAmount;
}
